1[preset00] 2fRating=3.000000 3fGammaAdj=1.210000 4fDecay=1.000000 5fVideoEchoZoom=1.006596 6fVideoEchoAlpha=0.000000 7nVideoEchoOrientation=3 8nWaveMode=3 9bAdditiveWaves=0 10bWaveDots=1 11bWaveThick=1 12bModWaveAlphaByVolume=0 13bMaximizeWaveColor=0 14bTexWrap=0 15bDarkenCenter=0 16bRedBlueStereo=0 17bBrighten=0 18bDarken=1 19bSolarize=0 20bInvert=0 21fWaveAlpha=9.088520 22fWaveScale=0.499500 23fWaveSmoothing=0.000000 24fWaveParam=1.000000 25fModWaveAlphaStart=0.710000 26fModWaveAlphaEnd=1.300000 27fWarpAnimSpeed=1.000000 28fWarpScale=1.331000 29fZoomExponent=1.000000 30fShader=0.000000 31zoom=0.999514 32rot=0.000000 33cx=0.500000 34cy=0.500000 35dx=0.000000 36dy=0.000000 37warp=0.010000 38sx=1.000000 39sy=1.000000 40wave_r=0.990000 41wave_g=0.000000 42wave_b=0.000000 43wave_x=0.500000 44wave_y=0.500000 45ob_size=0.005000 46ob_r=0.300000 47ob_g=0.000000 48ob_b=0.500000 49ob_a=0.000000 50ib_size=0.260000 51ib_r=0.250000 52ib_g=0.250000 53ib_b=0.250000 54ib_a=0.000000 55nMotionVectorsX=64.000000 56nMotionVectorsY=2.759997 57mv_dx=0.000000 58mv_dy=-0.620000 59mv_l=5.000000 60mv_r=0.000000 61mv_g=1.000000 62mv_b=1.000000 63mv_a=0.400000 64per_frame_1=// Hello, 65per_frame_2= 66per_frame_3=// My beat detection algorithm had the aim of being able to detect and pickup a reliable beat throughout a song. This has creative possibilities of being able to PREDICT coming beats, and to have things lasting for (say) half a beat, etc. It still requires work, but I think I have made progress. 67per_frame_4=// I emplore you to have a look over it and try to underdstand it. Help me out here - I think it could be reallly good. 68per_frame_5= 69per_frame_6=//Telek Sterling =:-) 70per_frame_7=//Dilettante Extrodinaire 71per_frame_8= 72per_frame_9= 73per_frame_10=//rt = realtime (for use with beat count) 74per_frame_11=rt=time-start; 75per_frame_12= 76per_frame_13=//color cycling, yellow dynamic treble 77per_frame_14=wave_g = max(0,min(1,.25*sin(time*10)+treb/2)); 78per_frame_15=wave_x = cos(time*2.12)*.33+.5; 79per_frame_16=wave_y = sin(time*1.5)*.13+.3; 80per_frame_17= 81per_frame_18=//initialisation bug patch 82per_frame_19=beatrate = if(below(beatcount,2),.1,beatrate); 83per_frame_20= 84per_frame_21=//beat = if(longer that 10 sec,1,above(bass, decaying threshold)*(can't be less that .4 of last beat length) 85per_frame_22=beat =if(above(rt-lastbeat,10),1, above(bass,1.6+.2*(lastbeat-rt)/beatrate)* above((rt-lastbeat)/beatrate,max(.4,.95-abs(accuracy*2)))); 86per_frame_23= 87per_frame_24=//Testing auto-beat trigger... exciting stuff.. 88per_frame_25=beat = if(beat,1, if(below(abs(accuracy),0.1)*below((lastbeat-rt)/beatrate,-1),1,0)); 89per_frame_26= 90per_frame_27=//Comparison of last beat duration to current. Best value is 0. -1 and 5 are pretty bad. 91per_frame_28=accuracy =if(beat,(rt-nextbeat)/beatrate,accuracy); 92per_frame_29= 93per_frame_30=beatcount = beatcount + beat; 94per_frame_31= 95per_frame_32=w_a = if(beat,1,w_a*0); 96per_frame_33=wave_a = w_a; // I can't actually change this, can I..... Oh well, it's here now. 97per_frame_34= 98per_frame_35=//Preserve beat rate 99per_frame_36=l_beatrate=if(beat,beatrate, l_beatrate); 100per_frame_37=//Record new beatrate 101per_frame_38=beatrate = if(beat,rt-lastbeat,beatrate); 102per_frame_39= 103per_frame_40=//Record most recent beat 104per_frame_41=lastbeat=if(beat,rt,lastbeat); 105per_frame_42=//Predict time of next beat 106per_frame_43=nextbeat=if(beat,rt+beatrate,nextbeat); 107per_frame_44= 108per_frame_45= 109per_frame_46= 110per_frame_47= 111per_frame_48=//Actual Display code: 112per_frame_49= 113per_frame_50=//Current direction of travel 114per_frame_51=state = beat * (state+1)%4+(1-beat)*state; 115per_frame_52= 116per_frame_53=//acceleration of horizon point 117per_frame_54=dddy = state%2-.5; 118per_frame_55=dddx = above(state,1.5)-.5; 119per_frame_56= 120per_frame_57=//adjustment factors to play with 121per_frame_58=ddx = dddx*.5; 122per_frame_59=ddy = dddy*.5; 123per_frame_60= 124per_frame_61= 125per_frame_62=q1 = (qq1*19+ddx)*.041; 126per_frame_63=//preserve q variables 127per_frame_64=qq1 = q1; 128per_frame_65= 129per_frame_66=q2 = (qq2*19+ddy)*.035; 130per_frame_67=qq2 = q2; 131per_frame_68= 132per_frame_69=//Decay to Blue!! 133per_frame_70=ob_a = 0.1*above(frame%10,6); 134per_frame_71= 135per_frame_72= 136per_frame_73= 137per_frame_74= 138per_frame_75=//Well, what do we want to monitor?? 139per_frame_76= 140per_frame_77=//monitor = q1; 141per_frame_78=//monitor = beat; 142per_frame_79=//monitor = 1.6+.2*(lastbeat-rt)/beatrate; 143per_frame_80=monitor = (rt-lastbeat)/beatrate; 144per_frame_81=//monitor = accuracy; 145per_frame_82=//monitor = max(.4,.95-abs(accuracy*2)); 146per_frame_83=//monitor = wave_a; 147per_frame_84=//monitor = wave_g; 148per_frame_85=//qwer = accuracy + if(below(abs(accuracy),0.1)*above((lastbeat-rt)/beatrate,1),1,0)*1000; 149per_frame_86=//monitor = qwer; 150per_frame_87=//monitor = (lastbeat-rt)/beatrate; 151per_pixel_1=dx = sin(.5-x)*.1+q1; 152per_pixel_2=dy = sin(.5-y)*.1+q2; 153per_frame_init_1=ddx = 0; 154per_frame_init_2=ddy = 0; 155per_frame_init_3=start = time; 156per_frame_init_4=rt = 0; 157per_frame_init_5=beatcount = 0; 158